NOTE

1.12 Elasticsearch refresh

1. 什么是refresh - Elasticsearch的一个操作,会把memory buffer中的数据刷入fliesystem cache,之后就可searchable 2. 为什么需要refresh - make index searchable - 注意refresh后的数据是在filte

Elasticsearch / Search创建于 更新于 historical

这是历史学习笔记,可能存在过时或不完整的理解。

1. 什么是refresh

  • Elasticsearch的一个操作,会把memory buffer中的数据刷入fliesystem cache,之后就可searchable

2. 为什么需要refresh

  • make index searchable
    • 注意refresh后的数据是在filtesystem cache中的,没有持久化到磁盘,可能丢失数据。因此Elasticsearch提供了Elasticsearch translog.md
    • 只有执行了Elasticsearch flush.md操作之后才会把segment file持久化到磁盘

3. 为什么不直接fsync到磁盘

  • refresh操作相对fsync操作更轻量,虽然牺牲了数据可靠性

4. refresh触发时机

4.1. 手动

  • 可以使用POST /my_index/_refresh强制刷新

4.2. 自动

  • 默认每秒refresh一次
  • 可以设置refresh间隔
    PUT /my_index/_settings
        {
          "index" : {
            "refresh_interval" : -1
          }
        }

5. refresh过程

把memory buffer中的数据写入filesystem cache,此时会生成一个 lucene segment file

6. 参考